package com.shop.user.api.service;

import com.shop.common.entity.user.UserPay;
import com.shop.common.model.ServiceBean;
import com.shop.common.model.result.user.UserBaseOutput;
import com.shop.user.api.model.RestModel;

import java.util.Map;

/**
 * @author zhoulk
 * @Description: 用户服务
 * @date: 2019年03月26日  16:24
 */

public interface IUserSvc {

    /**
     * @Function com.shop.user.api.service.IUserSvc.restPwd
     * @Description //TODO 重置用户密码
     *
     * @param: userModel
     * @return com.shop.common.model.ResultModel
     * @errorCode //TODO
     *
     * @Author zhoulk
     * @Date 2019/3/27 21:46
     *
     **/
    ServiceBean restPwd(RestModel restModel);

    /**
     * @Function com.shop.user.api.service.IUserSvc.restPayPwd
     * @Description //TODO 重置支付密码
     *
     * @param: userModel
     * @return com.shop.common.model.ResultModel
     * @errorCode //TODO
     *
     * @Author zhoulk
     * @Date 2019/3/27 21:54
     *
     **/
    ServiceBean restPayPwd(RestModel restModel);

    /**
     * @Function com.shop.user.api.service.IUserSvc.restPhone
     * @Description //TODO 重置手机号
     *
     * @param: userModel
     * @return com.shop.common.model.ResultModel
     * @errorCode //TODO
     *
     * @Author zhoulk
     * @Date 2019/3/27 21:55
     *
     **/
    ServiceBean restPhone(RestModel restModel);

    /**
     * @Function com.shop.user.api.service.IUserSvc.restEmail
     * @Description //TODO 重置邮箱
     *
     * @param: userModel
     * @return com.shop.common.model.ResultModel
     * @errorCode //TODO
     *
     * @Author zhoulk
     * @Date 2019/3/27 21:56
     *
     **/
    ServiceBean restEmail(RestModel restModel);

    /**
     * @Function com.shop.user.api.service.IUserSvc.validateIdCard
     * @Description //TODO 实名认证
     *
     * @param: userModel
     * @return com.shop.common.model.ResultModel
     * @errorCode //TODO
     *
     * @Author zhoulk
     * @Date 2019/3/27 21:57
     *
     **/
    ServiceBean validateIdCard(RestModel restModel);

    /**
     * @Function com.shop.user.api.service.IUserSvc.qryUserBaseById
     * @Description //TOD　查询用户基本信息
     *
     * @param:
     * @return com.shop.common.model.ResultModel<com.shop.common.model.result.user.UserBaseOutput>
     * @errorCode //TODO
     *
     * @Author zhoulk
     * @Date 2019/3/29 21:51
     *
     **/
    ServiceBean<UserBaseOutput> qryUserBaseById(Integer userId);

    /**
     * @Function com.shop.user.api.service.IUserSvc.qryUserPhone
     * @Description //TODO 查询用户手机号
     *
     * @param: userId
     * @return com.shop.common.model.ResultModel<java.lang.String>
     * @errorCode //TODO
     *
     * @Author zhoulk
     * @Date 2019/3/29 21:55
     *
     **/
    ServiceBean<String> qryUserPhone(Integer userId);

    /**
     * @Function com.shop.user.api.service.IUserSvc.qryUserEmail
     * @Description //TODO 查询用户邮箱
     *
     * @param: userId
     * @return com.shop.common.model.ResultModel<java.lang.String>
     * @errorCode //TODO
     *
     * @Author zhoulk
     * @Date 2019/3/29 21:57
     *
     **/
    ServiceBean<String> qryUserEmail(Integer userId);

    /**
     * @Function com.shop.user.api.service.IUserSvc.hasPassword
     * @Description //TODO
     *
     * @param: userId
     * @param: type 密码类型：1-登陆密码，2-支付密码
     * @return com.shop.common.model.ResultModel
     * @errorCode //TODO
     *
     * @Author zhoulk
     * @Date 2019/3/29 21:56
     *
     **/
    ServiceBean hasPassword(Integer userId, Integer type);

    /**
     * @Function com.shop.user.api.service.IUserSvc.qryUserPayByUserId
     * @Description //TODO 查询用户支付信息
     *
     * @param: userId
     * @return com.shop.common.model.ResultModel<com.shop.common.entity.user.UserPay>
     * @errorCode //TODO
     *
     * @Author zhoulk
     * @Date 2019/3/29 21:58
     *
     **/
    ServiceBean<UserPay> qryUserPayByUserId(Integer userId);

    ServiceBean<String> validatePayPwd(Integer userId,String pwd);

    ServiceBean<Map<String,Object>> qryUserSecurity(Integer userId);
}
